library(tidyverse)
library(reshape2)
library(lubridate)
library(forcats)
library(vistime)
temp_illustration <- data.frame(bucket = c("x < 62.8", "62.8 <= x < 71.3", "71.3 <= x < 79.8", "79.8 >= x > 85", "x >= 85"),
                                name = c("xcool_days", "cool_days", "normal_days", "hot_days", "xhot_days"),
                                start = c("32-01-01", "62-09-18", "71-03-18", "79-09-18", "85-01-01"),
                                end = c("62-09-18", "71-03-18", "79-09-18", "85-01-01", "100-01-01"),
                                color = c("cyan", "blue", "yellow", "orange", "red"),
                                optimize_y = TRUE)


vistime(temp_illustration, groups = "name", events = "bucket", title = "Temperature buckets")
temps_df %>%
  group_by(ride_name) %>%
  ggplot() +
  geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
  scale_fill_manual(values = temp_colors) +
  coord_flip() +
  labs(fill = "Temp cat") +
  theme(legend.justification=c(1,1), legend.position=c(1,1)) +
  labs(title = "Mean estimated wait time for each ride at a temperature", fill = "Temperature") +
  ylab("Mean wait (minutes)") +
  xlab("Ride")

temps_df %>%
  inner_join(ride_metadata) %>%
  filter(splash == TRUE) %>%
  group_by(ride_name) %>%
  ggplot() +
  geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
  scale_fill_manual(values = temp_colors) +
  coord_flip() +
  labs(fill = "Temp cat") +
  theme(legend.justification=c(1,1), legend.position=c(1,1)) +
  labs(title = "Mean estimated wait for rides with a splash feature at a temperature", fill = "Temperature") +
  ylab("Mean wait (minutes)") +
  xlab("Ride")
Joining, by = "ride_name"
Column `ride_name` joining factors with different levels, coercing to character vector

temps_df %>%
  inner_join(ride_metadata) %>%
  filter(indoor == TRUE) %>%
  group_by(ride_name) %>%
  ggplot() +
  geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
  scale_fill_manual(values = temp_colors) +
  coord_flip() +
  labs(fill = "Temp cat") +
  theme(legend.justification=c(1,1), legend.position=c(1,1)) +
  labs(title = "Mean estimated wait time for indoor rides at a temperature", fill = "Temperature") +
  ylab("Mean wait (minutes)") +
  xlab("Ride")
Joining, by = "ride_name"
Column `ride_name` joining factors with different levels, coercing to character vector

temps_df %>%
  inner_join(ride_metadata) %>%
  filter(splash == TRUE & indoor == TRUE) %>%
  group_by(ride_name) %>%
  ggplot() +
  geom_col(aes(x = ride_name, y = mean_wait, fill = fct_relevel(temp_cat, temp_list_names)), position = "dodge") +
  scale_fill_manual(values = temp_colors) +
  coord_flip() +
  labs(fill = "Temp cat") +
  theme(legend.justification=c(1,1), legend.position=c(1,1)) +
  labs(title = "Mean estimated wait time for indoor + splash rides at a temperature", fill = "Temperature") +
  ylab("Mean wait (minutes)") +
  xlab("Ride")
Joining, by = "ride_name"
Column `ride_name` joining factors with different levels, coercing to character vector

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShyZXNoYXBlMikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShmb3JjYXRzKQ0KbGlicmFyeSh2aXN0aW1lKQ0KYGBgDQoNCg0KYGBge3J9DQp0ZW1wX2lsbHVzdHJhdGlvbiA8LSBkYXRhLmZyYW1lKGJ1Y2tldCA9IGMoInggPCA2Mi44IiwgIjYyLjggPD0geCA8IDcxLjMiLCAiNzEuMyA8PSB4IDwgNzkuOCIsICI3OS44ID49IHggPiA4NSIsICJ4ID49IDg1IiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBjKCJ4Y29vbF9kYXlzIiwgImNvb2xfZGF5cyIsICJub3JtYWxfZGF5cyIsICJob3RfZGF5cyIsICJ4aG90X2RheXMiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBjKCIzMi0wMS0wMSIsICI2Mi0wOS0xOCIsICI3MS0wMy0xOCIsICI3OS0wOS0xOCIsICI4NS0wMS0wMSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBjKCI2Mi0wOS0xOCIsICI3MS0wMy0xOCIsICI3OS0wOS0xOCIsICI4NS0wMS0wMSIsICIxMDAtMDEtMDEiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBjKCJjeWFuIiwgImJsdWUiLCAieWVsbG93IiwgIm9yYW5nZSIsICJyZWQiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemVfeSA9IFRSVUUpDQoNCg0KdmlzdGltZSh0ZW1wX2lsbHVzdHJhdGlvbiwgZ3JvdXBzID0gIm5hbWUiLCBldmVudHMgPSAiYnVja2V0IiwgdGl0bGUgPSAiVGVtcGVyYXR1cmUgYnVja2V0cyIpDQpgYGANCg0KDQpgYGB7cn0NCnRlbXBzX2RmICU+JQ0KICBncm91cF9ieShyaWRlX25hbWUpICU+JQ0KICBnZ3Bsb3QoKSArDQogIGdlb21fY29sKGFlcyh4ID0gcmlkZV9uYW1lLCB5ID0gbWVhbl93YWl0LCBmaWxsID0gZmN0X3JlbGV2ZWwodGVtcF9jYXQsIHRlbXBfbGlzdF9uYW1lcykpLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gdGVtcF9jb2xvcnMpICsNCiAgY29vcmRfZmxpcCgpICsNCiAgbGFicyhmaWxsID0gIlRlbXAgY2F0IikgKw0KICB0aGVtZShsZWdlbmQuanVzdGlmaWNhdGlvbj1jKDEsMSksIGxlZ2VuZC5wb3NpdGlvbj1jKDEsMSkpICsNCiAgbGFicyh0aXRsZSA9ICJNZWFuIGVzdGltYXRlZCB3YWl0IHRpbWUgZm9yIGVhY2ggcmlkZSBhdCBhIHRlbXBlcmF0dXJlIiwgZmlsbCA9ICJUZW1wZXJhdHVyZSIpICsNCiAgeWxhYigiTWVhbiB3YWl0IChtaW51dGVzKSIpICsNCiAgeGxhYigiUmlkZSIpDQpgYGANCg0KDQpgYGB7cn0NCnRlbXBzX2RmICU+JQ0KICBpbm5lcl9qb2luKHJpZGVfbWV0YWRhdGEpICU+JQ0KICBmaWx0ZXIoc3BsYXNoID09IFRSVUUpICU+JQ0KICBncm91cF9ieShyaWRlX25hbWUpICU+JQ0KICBnZ3Bsb3QoKSArDQogIGdlb21fY29sKGFlcyh4ID0gcmlkZV9uYW1lLCB5ID0gbWVhbl93YWl0LCBmaWxsID0gZmN0X3JlbGV2ZWwodGVtcF9jYXQsIHRlbXBfbGlzdF9uYW1lcykpLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gdGVtcF9jb2xvcnMpICsNCiAgY29vcmRfZmxpcCgpICsNCiAgbGFicyhmaWxsID0gIlRlbXAgY2F0IikgKw0KICB0aGVtZShsZWdlbmQuanVzdGlmaWNhdGlvbj1jKDEsMSksIGxlZ2VuZC5wb3NpdGlvbj1jKDEsMSkpICsNCiAgbGFicyh0aXRsZSA9ICJNZWFuIGVzdGltYXRlZCB3YWl0IGZvciByaWRlcyB3aXRoIGEgc3BsYXNoIGZlYXR1cmUgYXQgYSB0ZW1wZXJhdHVyZSIsIGZpbGwgPSAiVGVtcGVyYXR1cmUiKSArDQogIHlsYWIoIk1lYW4gd2FpdCAobWludXRlcykiKSArDQogIHhsYWIoIlJpZGUiKQ0KYGBgDQoNCg0KYGBge3J9DQp0ZW1wc19kZiAlPiUNCiAgaW5uZXJfam9pbihyaWRlX21ldGFkYXRhKSAlPiUNCiAgZmlsdGVyKGluZG9vciA9PSBUUlVFKSAlPiUNCiAgZ3JvdXBfYnkocmlkZV9uYW1lKSAlPiUNCiAgZ2dwbG90KCkgKw0KICBnZW9tX2NvbChhZXMoeCA9IHJpZGVfbmFtZSwgeSA9IG1lYW5fd2FpdCwgZmlsbCA9IGZjdF9yZWxldmVsKHRlbXBfY2F0LCB0ZW1wX2xpc3RfbmFtZXMpKSwgcG9zaXRpb24gPSAiZG9kZ2UiKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHRlbXBfY29sb3JzKSArDQogIGNvb3JkX2ZsaXAoKSArDQogIGxhYnMoZmlsbCA9ICJUZW1wIGNhdCIpICsNCiAgdGhlbWUobGVnZW5kLmp1c3RpZmljYXRpb249YygxLDEpLCBsZWdlbmQucG9zaXRpb249YygxLDEpKSArDQogIGxhYnModGl0bGUgPSAiTWVhbiBlc3RpbWF0ZWQgd2FpdCB0aW1lIGZvciBpbmRvb3IgcmlkZXMgYXQgYSB0ZW1wZXJhdHVyZSIsIGZpbGwgPSAiVGVtcGVyYXR1cmUiKSArDQogIHlsYWIoIk1lYW4gd2FpdCAobWludXRlcykiKSArDQogIHhsYWIoIlJpZGUiKQ0KYGBgDQoNCg0KYGBge3J9DQp0ZW1wc19kZiAlPiUNCiAgaW5uZXJfam9pbihyaWRlX21ldGFkYXRhKSAlPiUNCiAgZmlsdGVyKHNwbGFzaCA9PSBUUlVFICYgaW5kb29yID09IFRSVUUpICU+JQ0KICBncm91cF9ieShyaWRlX25hbWUpICU+JQ0KICBnZ3Bsb3QoKSArDQogIGdlb21fY29sKGFlcyh4ID0gcmlkZV9uYW1lLCB5ID0gbWVhbl93YWl0LCBmaWxsID0gZmN0X3JlbGV2ZWwodGVtcF9jYXQsIHRlbXBfbGlzdF9uYW1lcykpLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gdGVtcF9jb2xvcnMpICsNCiAgY29vcmRfZmxpcCgpICsNCiAgbGFicyhmaWxsID0gIlRlbXAgY2F0IikgKw0KICB0aGVtZShsZWdlbmQuanVzdGlmaWNhdGlvbj1jKDEsMSksIGxlZ2VuZC5wb3NpdGlvbj1jKDEsMSkpICsNCiAgbGFicyh0aXRsZSA9ICJNZWFuIGVzdGltYXRlZCB3YWl0IHRpbWUgZm9yIGluZG9vciArIHNwbGFzaCByaWRlcyBhdCBhIHRlbXBlcmF0dXJlIiwgZmlsbCA9ICJUZW1wZXJhdHVyZSIpICsNCiAgeWxhYigiTWVhbiB3YWl0IChtaW51dGVzKSIpICsNCiAgeGxhYigiUmlkZSIpDQpgYGANCg0K